package com.qingcloud.adminbackend.mapper;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.qingcloud.adminbackend.entity.sysfunction.SysFunction;
import com.qingcloud.adminbackend.entity.sysfunction.SysRoleFunction;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Component;

import java.util.Collection;
import java.util.List;

/**
 * <p>
 * 角色功能关联表 Mapper 接口
 * </p>
 *
 * @author luozehua
 * @since 2018-12-27
 */
@Component
public interface SysRoleFunctionMapper extends BaseMapper<SysRoleFunction> {
    /**
     * 新增角色权限信息
     */
    int insert0(@Param("funs") Collection<SysRoleFunction> sysRoleFun);

    /**
     * 更新角色权限信息
     */
    int update0(SysRoleFunction sysRoleFun);


    /**
     * 删除指定id的角色权限
     *
     * @param ids
     */
    int deleteByIds(@Param("ids") String[] ids);

    /**
     * 删除指定角色权限
     *
     * @param roleFuncs
     */
    int delete0(@Param("roleFuncs") SysRoleFunction[] roleFuncs);

    /**
     * 删除指定角色id的权限
     *
     * @param roleIds
     */
    int deleteByRoleIds(@Param("roleIds") String[] roleIds);

    /**
     * 通过functionId删除角色模块关联信息
     *
     * @param functionIds
     * @return
     */
    int deleteByFunctionIds(@Param("functionIds") List<String> functionIds);

    /**
     * 通过functionId删除角色模块关联信息
     *
     * @param functionIds
     * @return
     */
    int deleteByFunctionIdsAndRoleId(@Param("functionIds") List<String> functionIds, @Param("roleId") String roleId);

    /**
     * 查询角色权限列表，查询roleIds的权限列表
     *
     * @param roleIds
     * @return
     */
    List<SysRoleFunction> findByRoleIds(@Param("roleIds") String[] roleIds);


    /**
     * 获取指定角色对应的功能列表
     *
     * @param roleId
     * @return
     */
    List<SysFunction> findFunsByRoleId(@Param("roleId") String roleId);

}
